#include<stdio.h>

#define MYTYPE(x) _Generic((x),\
    int: "int",\
    float: "float",\
    double: "double",\
    default: "other"\
)

int main() {
    int d = 5;
    printf("%s\n", MYTYPE(d));          // int
    printf("%s\n", MYTYPE(2.0 * d));    // double
    printf("%s\n", MYTYPE(3L));         // other
    printf("%s\n", MYTYPE(&d));         // other
    return 0;
}